#ifndef _PROGRAM_HPP
#define _PROGRAM_HPP

#include <vector>
#include "Node.hpp"
#include "Statement.hpp"


using namespace std;

namespace ast {
	class Program : public Node {
	public:
		virtual string tokenLiteral() override {
			if (_statement.size()) {
				return _statement[0]->tokenLiteral();
			}
			return "";
		}

		virtual string String() override {
			string out;
			if (_statement.size()) {
				for (auto itr : _statement) {
					out.append(itr->String() + "\n");
				}
			}
			return out;
		}

		~Program() {
			_statement.clear();
		}
		

	public:
		vector <Statement*> _statement;
	};
}


#endif
